package cn.wolfcode.web.interceptor;

import cn.wolfcode.web.domain.Employee;
import cn.wolfcode.web.util.UserContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginInterceptor implements HandlerInterceptor {
    @Autowired
    private HttpSession session;
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
//在拦截器判断如果从session作用域对象获取得到装密码和账号的员工对象(有密码和账号)不是空值,就让它访问.
//        因为在用户第一次登录验证时,我们就把查询密码和账号的对象出来,共享在session作用域对象里面
//        所以发的请求经过拦截器时,就判断从共享在session作用域对象获取得到装密码和账号的员工对象是不是空值,
// 如果没有登录就没有共享对象在session作用域对象里面,就经过逻辑判断,不让它访问
// (所有的请求要经过控制器必须要经过拦截器)
//        方式一:获取session对象里面的有账号和密码信息的员工对象
//        Employee employee = (Employee) session.getAttribute("EMPLOYEE_IN_SESSION");
//            方式一:通过抽取的工具类获得session对象,再获取session对象里面的有账号和密码信息的员工对象
//            public static final String EMPLOYEE_IN_SESSION="EMPLOYEE_IN_SESSION";
// 是工具类的静态全员字段,它就是字符串"EMPLOYEE_IN_SESSION'
        Employee employee =(Employee)  UserContext.getSession().getAttribute(UserContext.EMPLOYEE_IN_SESSION);
//        System.out.println(employee);
        if (employee==null) {
            response.sendRedirect("/login.html");
            return false;
        }
        return true;//已经登录放行
    }
}
